﻿using System.Collections.Generic;
using KMF.WebUI.Models;

namespace KMF.WebUI.Areas.KMFadmin.CustomHelpers
{
    public  class CommonHelpers
    {
        public static List<object> SelectOptionUserStatus()
        {
            return new List<object> {
                                         new  { ItemValue = "1", ItemText = "Kích hoạt"},
                                         new  { ItemValue = "10", ItemText = "Không kích hoạt"},
                                    };
        }
        public static List<object> OptionFilterProduct()
        {
            return new List<object> {
                                         new  { ItemValue = "0", ItemText = "Toàn bộ danh mục"},
                                         new  { ItemValue = "1", ItemText = "Chỉ dm cấp 1"},
                                         new  { ItemValue = "2", ItemText = "Chỉ dm cấp 2"},
                                         new  { ItemValue = "3", ItemText = "Chỉ dm cấp 3"},
                                         new  { ItemValue = "4", ItemText = "Tùy chọn danh mục"},
                                    };
        }
        public static List<object> SelectOptionFilterOrder()
        {
            return new List<object> {
                                         new  { ItemValue = "", ItemText = "-- Chọn --"},
                                         new  { ItemValue = "0", ItemText = "Tất cả"},
                                         new  { ItemValue = "today", ItemText = "Hôm nay"},
                                         new  { ItemValue = "yesterday", ItemText = "Hôm qua"},
                                         new  { ItemValue = "Lastweek", ItemText = "7 ngày trước"},
                                         new  { ItemValue = "LastMonth", ItemText = "Tháng trước"},
                                    };
        }
        public static List<SelectOptionQuantity> SelectOptionQuantity()
        {
            var model = new List<SelectOptionQuantity>
                            {
                                new SelectOptionQuantity {Value = "1", Text = "1"},
                                new SelectOptionQuantity {Value = "2", Text = "2"},
                                new SelectOptionQuantity {Value = "3", Text = "3"},
                                new SelectOptionQuantity {Value = "4", Text = "4"},
                                new SelectOptionQuantity {Value = "5", Text = "5"}
                            };
            return model;
        }

        /// <summary>
        /// Lấy về danh sách trạng thái sản phẩm như "còn hàng", "hết hàng"
        /// </summary>
        /// <returns>List</returns>
        public static List<object> GetProductStatusList()
        {
            return new List<object> {
                                         new  { ItemValue = "conhang", ItemText = "Còn hàng"},
                                         new  { ItemValue = "hethang", ItemText = "Hết hàng"},
                                         new  { ItemValue = "dangnhap", ItemText = "Đang nhập"},
                                         new  { ItemValue = "thanhly", ItemText = "Thanh lý" },
                                         new  { ItemValue = "onlyOnline", ItemText = "Chỉ bán Online" }
                                    };
        }

        /// <summary>
        /// List dữ liệu cho DropDownList dùng chung
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="obj"></param>
        /// <param name="fieldValue"></param>
        /// <param name="fieldName"></param>
        /// <param name="defaulValue"></param>
        /// <param name="defaultText"></param>
        /// <returns></returns>
        public static List<T> CreateListHasDefaultName<T>(List<T> obj, string fieldValue, string fieldName, object defaulValue, object defaultText) where T : new()
        {
            var objItem = new T();
            var objType = typeof(T);
            objType.GetProperty(fieldValue).SetValue(objItem, defaulValue);
            objType.GetProperty(fieldName).SetValue(objItem, defaultText);

            obj.Insert(0, objItem);
            return obj;
        }

        /// <summary>
        /// Danh sách kiểu giá trị dữ liệu của trường Value trong bảng Config
        /// </summary>
        /// <returns></returns>
        public static List<object> ConfigTypeValueList()
        {
            return new List<object>
            {
                new  { ItemValue = "TextEditor", ItemText = "TextEditor" },
                new  { ItemValue = "StaticHtml", ItemText = "StaticHtml" },
                new  { ItemValue = "Text", ItemText = "Text" }
            };
        }
    }
}